package entity;

/**
 * @author JDL
 */
import java.io.Serializable;
import java.util.Date;
import java.util.List;

import javax.persistence.CascadeType;
import javax.persistence.Embeddable;
import javax.persistence.Embedded;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.Table;

@Entity
@Table(name = "Comandas")
@Embeddable
public class ComandaBD implements Serializable {

	private static final long serialVersionUID = 1L;

	@Id
	@GeneratedValue(strategy = GenerationType.AUTO)
	private Integer idComanda;

	private Date fecha;

	@Embedded
	@OneToOne
	private MesaBD mesa;

	@Embedded
	@OneToOne
	@JoinColumn(name = "idArea")
	private AreaBD area;

	private String estado;

	@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
	@JoinColumn(name = "idComanda")
	private List<ItemComandaBD> itemsComanda;

	public ComandaBD() {
	}

	public Integer getIdComanda() {
		return idComanda;
	}

	public void setIdComanda(Integer idComanda) {
		this.idComanda = idComanda;
	}

	public AreaBD getArea() {
		return area;
	}

	public void setArea(AreaBD area) {
		this.area = area;
	}

	public String getEstado() {
		return estado;
	}

	public void setEstado(String estado) {
		this.estado = estado;
	}

	public Date getFecha() {
		return fecha;
	}

	public void setFecha(Date fecha) {
		this.fecha = fecha;
	}

	public List<ItemComandaBD> getItemsComanda() {
		return itemsComanda;
	}

	public void setItemsComanda(List<ItemComandaBD> itemsComanda) {
		this.itemsComanda = itemsComanda;
	}

	// @Embedded
	// @OneToOne
	// @JoinColumns({@JoinColumn(name="idRestaurante"),
	// @JoinColumn(name="idSector"),@JoinColumn(name="numero")})
	// @JoinColumn(name="IdMesa")
	// public MesaBD getMesa() {
	// return mesa;
	// }
	//
	// public void setMesa(MesaBD mesa) {
	// this.mesa = mesa;
	// }

	/**
	 * @param mesa
	 *            the mesa to set
	 */
	public void setMesa(MesaBD mesa) {
		this.mesa = mesa;
	}

	/**
	 * @return the mesa
	 */
	public MesaBD getMesa() {
		return mesa;
	}

	// public Integer getNumero() {
	// return numero;
	// }
	//
	// public void setNumero(Integer numero) {
	// this.numero = numero;
	// }

}
